﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados;
using System.ComponentModel;

namespace Negocios
{
    [DataObject]
    public class GrupoDeVideosBLL
    {
        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public bool Insere(GrupoDeVideos g)
        {
            try
            {
                return GrupoDeVideosDAL.insere(g.Nome, g.Descricao, g.Compartilhado, g.Usuario);
            }
            catch (Exception e)
            {
                throw new SystemException("Erro ao inserir Entidade " + g.Nome);
            }
        }

        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public bool Remove(GrupoDeVideos g)
        {
            try
            {
                return GrupoDeVideosDAL.deleta(g.Codigo);
            }
            catch (Exception e)
            {
                throw new SystemException("Erro ao remover Entidade " + g.Nome);
            }
        }

        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public bool Atualiza(GrupoDeVideos g)
        {
            try
            {
                return GrupoDeVideosDAL.atualiza(g.Codigo, g.Nome, g.Descricao, g.Compartilhado, g.Usuario);
            }
            catch (Exception e)
            {
                throw new SystemException("Erro ao editar Entidade " + g.Nome);
            }
        }

        [DataObjectMethodAttribute(DataObjectMethodType.Insert, false)]
        public GrupoDeVideos Consulta(int codigo)
        {
            DSMPTUDO.T_GRUPODEVIDEOSDataTable grupoDeVideosDT = GrupoDeVideosDAL.consultaPorCodigo(codigo);
            GrupoDeVideos g = new GrupoDeVideos(codigo);
            g.Nome = grupoDeVideosDT[0].tx_nome;
            g.Descricao = grupoDeVideosDT[0].tx_descricao;
            g.Usuario = grupoDeVideosDT[0].tx_usuario;
            g.Compartilhado = grupoDeVideosDT[0].bo_compartilhado;
            return g;
        }

        [DataObjectMethodAttribute(DataObjectMethodType.Insert, true)]
        public static List<GrupoDeVideos> ConsultaTodos()
        {
            List<GrupoDeVideos> lista = new List<GrupoDeVideos>();
            DSMPTUDO.T_GRUPODEVIDEOSDataTable grupoDeVideosDT = GrupoDeVideosDAL.consultaTodos();
            for (int i = 0; i < grupoDeVideosDT.Count; i++)
            {
                GrupoDeVideos g = new GrupoDeVideos(grupoDeVideosDT[i].nr_codigo);
                g.Nome = grupoDeVideosDT[i].tx_nome;
                g.Descricao = grupoDeVideosDT[i].tx_descricao;
                g.Usuario = grupoDeVideosDT[i].tx_usuario;
                g.Compartilhado = grupoDeVideosDT[i].bo_compartilhado;
                lista.Add(g);
            }
            return lista;

        }


    }
}
